//import Login from './components/login';

// patchRoutes
// 修改路由。
//
// 比如在最前面添加一个 /foo 路由，
//https://umijs.org/zh-CN/docs/runtime-config#patchroutes-routes-
export function patchRoutes({routes}){
  console.log('---app.js patchRoutes---');
  console.log('routes:',routes); //routes结构查看 assets/routes.png

  //之所以unshift 是想将login放在路由表的前面, 加速匹配
  /*routes.unshift({
    path:'/login',
    exact:true,
    //component:Login
    component: require('./components/login').default
  })*/
}
/*↑
注意：
直接修改routes，不需要返回
* */


//render
//覆写 render。
//
// 比如用于渲染之前做权限校验，
let extraRoutes;

export function render(oldRender){
  console.log('---app.js render---');
  fetch('/api/routes').then(res => res.json())
    .then(res => {
      extraRoutes = res.map(item=>{
        let component = item.component;
        component = require(`./components/${component}`).default
        return {...item, component}
      });
      oldRender();
    });
}

// modifyClientRenderOpts(fn)
// 修改 clientRender 参数。
//
// 比如在微前端里动态修改渲染根节点：
/*
let isSubApp = false;
export function modifyClientRenderOpts(memo) {
  return {
    ...memo,
    rootElement: isSubApp ? 'sub-root' : memo.rootElement,
  };
}
*/
export function modifyClientRenderOpts(opts){
  console.log('---app.js modifyClientRenderOpts---');
  //渲染页面前 会把路由进行合并
  opts.routes.unshift(...extraRoutes);
  return opts;
}


// render、patchRoutes、modifyClientRenderOpts 执行顺序是怎样的?
/*
---app.js render---
---app.js patchRoutes---
---app.js modifyClientRenderOpts---
*/
